package com.hspedu.qqclient.service;


import com.hspedu.qqcommon.Message;
import com.hspedu.qqcommon.MessageType;

import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Date;
/**
 * @author 吴宇~
 * @motto 我亦无他，唯手熟尔。
 * @edition jdk1.8
 * @reflection 0-1 喧闹任其喧闹，自由我自为之，我自风情万种，与世无争。
 * @date 2023/03/21/20:43
 */
//该类/对象。提供消息相关的服务方法
public class MessageClientService {
    /**
     *
     * @param content 发送内容
     * @param senderId 发送者
     * @param getterId 接收者
     */
    public void sendMessageToOne(String content,String senderId,String getterId){
        //构建Message
        Message message = new Message();
        message.setMesType(MessageType.MESSAGE_COMM_MES);
        message.setGetter(getterId);
        message.setSender(senderId);
        message.setContent(content);
        message.setSendTime(new Date().toString());
        Date date = new Date();
        message.setSendTime(date.toString());//把发送时间也设置到Message对象
        System.out.println("我对"+getterId+"说："+content+message.getSendTime());
        //发送给服务端
        try {
            ObjectOutputStream oos =
                    new ObjectOutputStream(MangerClientConnectServerThread.getClientConnectServerThread(senderId).getSocket().getOutputStream());
            oos.writeObject(message);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }


    /**
     *
     * @param content 发送内容
     * @param senderId 发送者
     */
    public void senderMessageToAll(String content,String senderId){
        //构建Message
        Message message = new Message();
        message.setMesType(MessageType.MESSAGE_TO_ALL_MES);
        message.setSender(senderId);
        message.setContent(content);
        Date date = new Date();
        message.setSendTime(date.toString());//把发送时间也设置到Message对象
        System.out.println("我对大家说："+content);
        //发送给服务端
        try {
            ObjectOutputStream oos =
                    new ObjectOutputStream(MangerClientConnectServerThread.getClientConnectServerThread(senderId).getSocket().getOutputStream());
            oos.writeObject(message);
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
